Web document enhancement

ABSTRACT

A method for enhancing a presentation of a network document by a client terminal with real time social media content. The method comprises analyzing a content in a web document to identify a relation to a first of a plurality of multi participant events documented in an event dataset, each of the plurality of multi participant events is held in a geographical venue which hosts an audience of a plurality of participants, matching a plurality of event indicating tags of each of a plurality of user uploaded media content files with at least one feature of the first multi participant event to identify a group of user uploaded media content files selected from the plurality of user uploaded media content files, and forwarding at least some members of the group to a simultaneous presentation on a browser running on a client terminal and presenting the web document.

RELATED APPLICATIONS

This application claims the benefit of priority under 35 USC 119(e) of U.S. Provisional Patent Application Nos. 62/007,974 filed on Jun. 5, 2014 and 62/138,551 filed on Mar. 26, 2015, the contents of which are incorporated herein by reference in their entirety.

BACKGROUND

The present invention, in some embodiments thereof, relates to web document enhancement and, more specifically, but not exclusively, to web document enhancement using user loaded media content files.

Advances in digital multimedia creation and editing technologies have made available to a wider group of people the tools to capture, tag (e.g. manually or automatically), and edit their own media content, for example image, video, audio, and graphic creations on their client devices. Many capturing, tagging and editing tools are available on the market that allows a non-professional user who is participating in a certain event to create and upload media content item during the event in real time. The media content may even be edited in no time using preset filters and image processing functions.

The growing interest in creating and editing personalized content, such as video, audio, and graphic creations, has increased the amount of user uploaded content which is available for usage.

SUMMARY

According to some embodiments of the present invention, there is provided a method for enhancing a presentation of a network document by a client terminal with real time social media content. The method comprises analyzing a content in a web document to identify a relation to a first of a plurality of multi participant events documented in an event dataset, each of the plurality of multi participant events is held in a geographical venue which hosts an audience of a plurality of participants, matching a plurality of event indicating tags of each of a plurality of user uploaded media content files with at least one feature of the first multi participant event to identify a group of user uploaded media content files selected from the plurality of user uploaded media content files, and forwarding at least some members of the group to a simultaneous presentation on a browser running on a client terminal and presenting the web document.

Optionally, the plurality of event indicating tags comprises a set of tags representing a capturing location and a capturing time and the at least one feature of the first multi participant event comprises an event time value, and an area defining value.

Optionally, the method comprises receiving from the client terminal a request for the at least some members, the request being issued by a client module which monitors the browser in response to a user input detected on the client terminal.

Optionally, the plurality of user uploaded media content files comprise a plurality of video files and a plurality of images both captured by a plurality of different users and uploaded from a plurality of different client terminals.

Optionally, the event dataset is created by an analysis of content from a plurality of web documents.

Optionally, the event dataset is created by an analysis of information about the location and time of at least some of the plurality of user uploaded media content files.

Optionally, the simultaneous presentation is implemented as an overlay which is presented on top of a part of the web document.

Optionally, the first multi participant event is defined by a first value setting plurality of different locations and a second value defining a common timing.

Optionally, the event dataset is created by an analysis of a plurality of search queries filed by a plurality of users.

Optionally, the web document is a webpage.

Optionally, the plurality of user uploaded media content files is clustered to a plurality of clusters according to an analysis of the plurality of event indicating tags of each of the plurality of user uploaded media content files; wherein the group is selected from the plurality of clusters.

Optionally, the analyzing of the content comprises a natural language processing (NLP).

Optionally, the analyzing is induced by a loading of the web document by the browser and comprises analyzing a plurality of search keywords of a search query submitted prior to the loading.

Optionally, the method comprises iteratively updating of the event dataset with up-to-date multi participant events.

Optionally, the method comprises iteratively updating of a dataset documenting the plurality of user uploaded media content files with new user uploaded media content files and repeating the matching with the new user uploaded media content files instead of at least some of the plurality of user uploaded media content files for updating the group and forwarding at least some members of the updated group to the simultaneous presentation.

According to some embodiments of the present invention, there is provided a network node set to be connected to a plurality of client via a network for enhancing a presentation of a network document with real time social media content, comprising: a database which hosts an event dataset documenting a plurality of multi participant events each held in a geographical venue which hosts an audience of a plurality of participants, at least one processor, a web document analyzer which uses the at least one processor to analyze content in a plurality of web documents to identify, per the web document, a relation to a first of the plurality of multi participant events, a selection module which matches, per the web document, a plurality of event indicating tags of each of a plurality of user uploaded media content files with at least one feature of the first multi participant event to identify a group of user uploaded media content files selected from the plurality of user uploaded media content files, and client interface module which receive a request from a client terminal hosting a browser displaying a respective the web document and forwards, in response to the request, at least some members of the group for a simultaneous presentation with the web document by the browser.

According to some embodiments of the present invention, there is provided a method for detecting an on-going event by an analysis of social media content. The method comprises monitoring an uploading of a plurality of user uploaded media content files by a plurality of client terminals, each of the plurality of user uploaded media content files is tagged with a time indication and a location indication and comprises at least one of an image or a video captured by at least one of the plurality of client terminals, clustering the plurality of user uploaded media content files based on respective the location indication and respective the time indication to create a plurality of location and time dependent media content files clusters, identifying an on-going event held in a geographical location which hosts a plurality of participants and documented in a certain of the plurality of location and time dependent media content files clusters according to an analysis of at least one of (1) respective the location indication and respective the time and (2) an image processing members of the certain location and time dependent media content files cluster, and generating an indication of the on-going event.

Optionally, wherein the identifying an on-going event held comprises matching between content loaded in at least one text content feed and data of the certain location and time dependent media content files cluster.

Optionally, the method further comprises text tagging the certain location and time dependent media content files cluster according to the matching.

Unless otherwise defined, all technical and/or scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the invention pertains. Although methods and materials similar or equivalent to those described herein can be used in the practice or testing of embodiments of the invention, exemplary methods and/or materials are described below. In case of conflict, the patent specification, including definitions, will control. In addition, the materials, methods, and examples are illustrative only and are not intended to be necessarily limiting.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

Some embodiments of the invention are herein described, by way of example only, with reference to the accompanying drawings. With specific reference now to the drawings in detail, it is stressed that the particulars shown are by way of example and for purposes of illustrative discussion of embodiments of the invention. In this regard, the description taken with the drawings makes apparent to those skilled in the art how embodiments of the invention may be practiced.

In the drawings:

FIG. 1 is a flowchart of a method for enhancing a client terminal presentation of a web document related to a multi participant event with real time social media content based on an analysis of the content in the web document and data capturing information regarding the social media content, according to some embodiments of the present invention;

FIG. 2 is a schematic illustration of an exemplary recipient client terminal, a web document enhancing system for enhancing the presentation of web documents by the recipient client terminal, and one or more client terminals, all connected to a network, such as the internet, according to some embodiments of the present invention;

FIG. 3 is a schematic illustration of sources which load data to sub modules for automatically adding multi participant events to an event dataset, according to some embodiments of the present invention;

FIG. 4 is a schematic illustration of a process of updating an event dataset based on a combination of media content files upload and data excavated from feeds, such as RSS and News feeds, according to some embodiments of the present invention;

FIG. 5 is a schematic illustration of a process for identifying which multi participant event is related to a designated web document, according to some embodiments of the present invention; and

FIGS. 6A-6H are a set of screenshots depicting a process wherein a web document is enhanced with user uploaded content related to a multi participant event referred to in the web document, according to some embodiments of the present invention.

DETAILED DESCRIPTION

The present invention, in some embodiments thereof, relates to web document enhancement and, more specifically, but not exclusively, to web document enhancement using user loaded media content files.

According to some embodiments of the present invention, there are provided methods and systems for enhancing web documents with user uploaded media content items, such as images, video, and user inputs such as twits, based on a match between a multi participant event referred to in the web documents and characterizing features of the user uploaded media content items. The methods and systems are optionally supported by a client module running on a browser of a client terminal, for example an extension, a web service, or an integrated function of a browser. The client module identifies a user request for web document enhancement or a loading of a webpage which is browsed to by the browsing user and communicated via a network with a central system (e.g. servers) which matches user uploaded media content items for the web document that is currently displayed by the browser that hosts the client module. The user uploaded media content items are optionally associated with a link to allow the browsing user to receive more information about a selected uploaded media content item, to present it with a different player and/or resolution and/or to access related data sources.

Optionally, the systems and methods involve continuous and/or iterative updating of a dataset of multi participant events to assure that reference to up-to-date multi participant events in designated web documents is identified for enhancement of the designated web documents. Additionally or alternatively, the system and method involve continuous and/or iterative associating between up to date user loaded media content files and records of a dataset of multi participant events to assure web documents are enhanced with the most recent user loaded media content files.

Before explaining at least one embodiment of the invention in detail, it is to be understood that the invention is not necessarily limited in its application to the details of construction and the arrangement of the components and/or methods set forth in the following description and/or illustrated in the drawings and/or the Examples. The invention is capable of other embodiments or of being practiced or carried out in various ways.

The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.

Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.

Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.

These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.

The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.

The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.

Reference is now made to FIG. 1, which is a flowchart 100 of a method for enhancing a client terminal presentation of a web document related to a multi participant event with social media content based on an analysis of the content in the web document and characteristics of the social media content, according to some embodiments of the present invention.

As used herein, a web document may be any document which has a Uniform Resource Identifier and is accessible via a network, for example a webpage, a video file, an image file, a text document and/or any other document which is accessible via a browser.

The social media content or user uploaded media content file may include images and/or video files uploaded by members of a social network, statuses and/or posts uploaded by members of a social network, for example text files, metadata related to images and/or video files and/or statues such as comments and likes data and/or the like. The social media content may be referred to one or more files and/or any other user uploaded content. The social media content includes or associated with data capturing features, referred to herein as features, such as tags and/or metadata indicative of capturing location, capturing time, capturing photographer characteristics and/or any other data or metadata indicative of the content depicted to thereby. For example, the data capturing feature of a video file or an image include a capturing location, a capturing time, and a photographer identifier (ID). The photographer ID may be used to identify any photographer characteristic, for example demographic data about the photographer (i.e. gender, age, socioeconomic data and/or the like) and/or about the device used by the photographer (i.e. type of a client terminal, application(s) installed on the client terminal and/or the like) and/or about the social media to which the photographer uploaded the content.

As used herein, a multi participant event is an event held in a certain time and non virtual venue, for example a concert, a show, a conference, a meeting, a demonstration, a news event, a festival, and/or the like. For brevity, a multi participant event may be referred to herein as an event. The multi participant event may scheduled in advance or occurring as an outcome of circumstances, for instance a terror attack and/or a gathering of people induced by a presence of a celebrity, an artist and/or the like.

The method is set to allow enhancing web documents related to a multi participant event(s) and presented at a client terminal to a user with content from social media files uploaded by participants of the multi participant event(s) and/or other users who documented the multi participant event(s) and/or the surroundings of the event. Optionally, the enhancement is facilitated using a client module installed or loaded by a browser installed in the client terminal which displays the web document.

In use, a user who accesses a web document, such as a webpage displaying an article, an image, or a video (e.g. file or stream) about a held or a currently held multi participant event(s) is presented with a graphical user interface (GUI) that allows him to request for content enhancement and/or with an indication that such a content is available for him. Upon accessing a web document and/or selecting for content enhancement, for example by pressing a button (e.g. click of a mouse over an icon) or by a touch event, a request is sent to a web document enhancing system, for example as described below. The web document enhancing system identifies the multi participant event described in the web document, for example by an analysis of the content and/or metadata thereof and matches user uploaded media content files which are related to the multi participant event accordingly. The matched user uploaded media content files are streamed, forwarded, and/or otherwise rendered together with the display of at least part of the web document (for brevity at least part of the web document and the web document as a whole are referred to interchangeably), enhancing the user experience by providing her with real time user uploaded images and videos taken during the multi participant event and/or several seconds or minutes after or before the multi participant event. The uploaded content may be viewed during or after the multi participant event.

Reference is also made to FIG. 2, which is a schematic illustration of an exemplary recipient client terminal 202, a web document enhancing system 201 for enhancing the presentation of web documents by the recipient client terminal 202, and one or more client terminals 210 which upload media content files, all connected to a network 205, such as the internet, according to some embodiments of the present invention. The web document enhancing system 201 includes or connected to a database 219 which hosts an event dataset (e.g. one or more lists, matrixes, indexes, tables and/or the like) documenting a plurality of multi participant events held in a geographical venue which hosts an audience of a plurality of participants.

The web document enhancing system 201 further includes one or more processors 208 and a web document analyzer 203 which uses the processor(s) 208 to identify which multi participant event are referred to, for example, in analyzed web documents hosted by third party content network nodes 211, for instance by textual or contextual analysis of the content therein, in selected feeds, and/or in user uploaded content, for example as described below. As used herein, a network node means a server, a database, a virtual machine and/or any other network accessible computing unit such as one or more servers.

The web document enhancing system 201 further includes a selection module 213 which selects a group of user uploaded media content files from a user generated media files repository 212 based on the multi participant event identified are referred to by the web document(s) by the web document analyzer 203.

The web document enhancing system 201 further includes a client interface module 207 which receives a media data request from the recipient client terminal 202 and, in response to the request, responds with the matching user uploaded media content files from a selected group. The response may include a list of references to user uploaded media content files, instructions for rendering user uploaded media content files, a stream of social media contents, user uploaded media content files, list of references to other webpages identified as related to the event and/or any combination thereof. The user uploaded media content files may be ordered as described below.

The recipient client terminal 202 is optionally a client end device, such as a Smartphone, a laptop, a desktop, a tablet, and/or a wearable device which runs or hosts a browser set to display web documents. The recipient client terminal 202 optionally includes a display 244, a processor 208, a memory 217, and a browser 209 (e.g. Google Chrome™, Internet Explorer™ and/or an application with integral browsing module). The recipient client terminal 202 optionally hosts a client module 204 which communicates with the Web document enhancing system 201 for requesting and receiving media content files which are related to a web document which is currently displayed by the browser 209. The client module 204 is set to display the received media content files, either as an overlay or in a designated web client, for example as described below. The client module 204 may be implemented as an add-on to the browser 209, for example as a browser extension, a web application which is loaded with a web document, for instance as an AJAX component or a Javascript and/or the like.

As shown at 101, an event dataset documenting a plurality of multi participant events, each held in a geographical venue which hosts an audience of a plurality of participants, for example as defined above, is provided. The event dataset is optionally created by an event list creator module (not shown) which maps planned, user defined, and/or trend based selected events. For example, each record of the event dataset is indicative of an event and includes a feature set which includes a title field, such as a Field (League) or performer of a concert, location field, for example coordinates, time, related events field, for instance concert of the same performer, and/or sub events field, for example an after party or a press release event.

The events may be identified by crawling web documents, such as electronic program guides (EPG), schedules of concert halls, articles, selected websites, and/or the like. The events may be manually added by users, for example using a designated application function or a portal and/or by an operator. The event dataset, for instance a list, is stored in the event database (DB) 219. Optionally, events are created in real time by a real time (RT) event creator module, for instance based on an analysis such as a natural language processing (NLP) analysis of news feeds, user uploads and/or to the like.

Optionally, locations are automatically added to an event based on the relevancy thereof to the event. For example, when the event is Black Friday, locations which are associated with retailers may be automatically identified and added.

FIG. 3 is a schematic illustration of sources 300 which load data to sub modules 301-304 of an event creator module for automatically adding events to the event dataset, for example stored as shown in 305, according to some embodiments of the present invention. Fetching sub module 301 may process data from designated web documents, for instance identified by URLs, to identify new events. RT event creator sub module 302 may process the text in a feed such as Cable News Network (CNN) Rich Site Summary (RSS) and/or similar RSS in real time to identify location (e.g. addresses) of currently held event. A user generated event creator sub module 303 analyzes features (e.g. tags) and capturing location from capturing information of uploaded media content files received from any of a plurality of client modules, for instance metadata of an image uploaded by uploading clients 210 to the system 201 or to a social media network to which the user is connected, such as Mobli™, Facebook™, and/or Instagram™. In another example, the RT event creator module receives user inputs from a plurality of client modules, for instance when a user reports an event to the system 201. In another example, a RT trend detector sub module 304 analyzes trends in user searches to detect event trends, for instance mostly searched events. The detected trends are marked as events which are added to the event dataset. As shown at 105, the event dataset may be continuously updated when updated information is received from one of the above sources.

According to some embodiments of the present invention, on-going event(s) are identified by an analysis of social media content files which is uploaded by different users who use different client terminals, for instance as described above. In use, uploading of a plurality of user uploaded media content files by a plurality of client terminals is monitored for example by a module which crawls the records of the user generated media files repository 212. Each of the plurality of user uploaded media content files is tagged with a time indication and a location indication and may comprise image(s) and/or video file(s) captured by one or more of the client terminals 210. This allows the monitoring module or a module which communicate therewith to cluster some or all of the user uploaded media content files based on the location indications and/or time indications to create a plurality of location and time dependent media content files clusters. Each cluster may include images or video of the same event. Now, monitoring module or another module may identify one or more on-going events held in geographical location(s) which hosts a plurality of participants and documented in one or more of the location and time dependent media content files clusters. The clustering may be performed according to an analysis of the location indications and/or the time tags of the location and time dependent media content files and/or based on image processing of the media content files.

Optionally, each one of the image clusters is validated and/or text tagged based on real time data that is acquired from feeds, such as news resources such as RSS, tweets. For example, FIG. 4 depicts the process of updating an event dataset based on a combination of media content files upload 401 and data excavated from feeds, such as RSS and News feeds 402. Each record of the event dataset includes a set of features such as media (e.g. origin social media or origin web document), time, location and additional descriptive fields from third party sources, such as RSS. As shown at 403, received data is analyzed using Geographic Information System (GIS) data for identifying and filtering event location candidates. This is optionally done by identifying a location a textual analysis of the received feeds and the event indicative tags of clusters of the uploaded media content files 401 and using data from the GIS data to extract coordinates of the location and/or any other unified address representation of the location. The GIS data or the unified address are set to define a potential event location and optionally matched with GIS DB candidate event locations. Optionally, each event is associated with a specified radius (e.g. street names, facilities, coordinates etc.) so as to allow matching user inputs, images and video clips taken in that radius during the event or shortly before and/or after.

Optionally, a candidate location from one source is validated by a comparison with candidate location(s) from other sources. For example, a candidate location derived from a cluster of user uploaded media files is compared with a candidate location derived from a feed, such as an RSS.

As shown at 111 and 102, a web document is designated and analyzed to identify a relation to a one or more of the multi participant events in the event dataset.

The web document may be analyzed by the web document analyzer 203. For example, web document is designated for analysis when the web document is selected and/or accessed by a viewing user. Additionally or alternatively, web document is designated for analysis in a preprocessing stage, together with other web documents, for example by a crawler mechanism that documents to which of the multi participant events web documents are related and/or. The analysis may be induced when an access to a webpage is detected and/or when a button or any other user input is indicated by the user when he or she uses a GUI presented with by the client module 204.

The analysis may be induced when a user submits a search query to a search engine, either using a GUI of the client module 204 and/or a search engine accessed via the browser. In such embodiments, the search key words of a search query submitted prior to the loading of the browsed web document are analyzed, optionally even before the user accesses to web document.

The web documents which appear in the results to the search query may be automatically analyzed. The search query and/or the web documents which appear in the results to the search query may be gathered for analysis by the client module 204.

For example, FIG. 5 describes a process for identifying which multi participant event is related to a designated web document, according to some embodiments of the present invention. First, as shown at 501, a web document, identified by a URL, is analyzed to extract features such as entities, keywords, and/or any indicator of what is happening, when (time), and where (location). The analysis may be performed based on known NLP algorithms and/or Application Program Interfaces (APIs), such as AlchemyAPI. The analysis optionally generates a set of features for matching with the records of the event dataset.

Then, as shown at 502, candidate events are selected by matching the extracted features, for classification or ranking, with features of events from the event dataset from the event DB. Optionally, a machine learning process is applied to classify the set of features of each event in the event dataset. This is used in the above matching process.

As shown at 503, one of the candidate events is selected by a designated module. Optionally, the selection is made using information retrieval methods for ranking relevancy of the set of features of each candidate event to different types of events. The outcome of such a step is a confidence level and/or a relevancy score of the designated web document, for example a Uniform Resource Locator (URL) thereof, to each of the candidate events. This allows automatic event selection and/or recommendation based on confidence level, a content quality evaluation, and/or web user personalization data. The content quality evaluation may be determined using an additional module. The web user personalization data may be gathered by a GUI executed by the client module 204, as shown at 504. The web user personalization data is optionally stored in a user record accessible to the web document enhancing system 201.

As shown at 103, a group of user uploaded media content files are selected from one or more database(s) of user generated media files for the designated web document. The selection may be based on a match between image, video, or any other user input features (e.g. tags) and the features of the event related to in the designated web document. The user generated media files are optionally tagged with a plurality of event indicating tags. Each indicating tag is indicative of one of the documented multi participant events. For example, an indicating tag is a metadata added by the image capturing user at the uploading client 210, for instance textual tags added by the user. Tags may be location and/or time tags which are added to the user generated media file, for example automatically. Tags may be automatically added or removed by an image processing module, for example an image processing module that identifies and removes portraits and/or an image processing module that identifies common expected object composition and/or expected object presence at a multi participant event images. Optionally, each user generated media file is ranked, either by users of a respective social media network in which the user generated media file is presented or by a computerized quality assessment generated by the image processing module.

It should be noted that user uploaded media content files may be clustered in advance based on a match with records of the event dataset. In such embodiments, a dataset which associates between media content files and events may be generated and continuously or iteratively updated, for instance whenever a new user uploaded media file is discovered.

According to some embodiments of the present invention, the event dataset includes a set of links which link between events. In such a manner, related events may be linked, for example concerts of the same artist from different venues and times, demonstrations of the same topic from different venues and times, concurrent related events, such as holiday related events, and/or the like. The link allows selecting images from one event for a display in a web document related to a linked event.

According to some embodiments of the present invention, the event dataset includes a set of references to websites or databases, such as related news sites, for example an artist website or related electronic forum. In such a manner, related websites or databases may be searched for media files. The links allows selecting images or videos which are related to the event for a display in the web document.

Now, as shown at 104, some or all of the members of the selected group/cluster is forwarded for a simultaneous presentation on the client terminal presenting the web document. Optionally, the members of the selected group are ordered in a list for setting a content displaying order. The order may be set according to:

an image or video quality rank, for example set as described above;

an image or video source (e.g. Mobli™, Instagram™, Twitter™ and/or the like);

a web users ranking, for example the number of likes and/or shares;

a presence or an absence of one or more filtering characteristics such as a self portrait;

a diversity indicator, for example a dynamic ranking which set according to a user generated media file to previously displayed user generated media files, for example by evaluating a similarity of an image or a video file to previously presented files;

a presence or absence of filtering characteristics, such as a presence of a facial area which is larger than a certain percentage of the image, a presence of nudity, a presence of haltered flags or icons and/or the like;

a relevancy rank which is set by processing the image to identify a match with event characteristics, for example a presence of a stage in the imaged area of a concert, a presence of a lawn in the imaged area of a football game, and/or the like;

capturing time; and

a match with an event story record that defines the event class, the event time, the event location and/or the like.

For example, FIGS. 6A-6H are a set of screenshots depicting a process wherein a web document is enhanced with user uploaded content related to an event referred to in that web document, according to some embodiments of the present invention. In this example, the client module 204 is implemented as a browser extension which is set to be activated when a user clicks or touches an icon added to the search bar of the browser, for example as shown at 601 of FIG. 6A.

In use, the client module is set to identify to which event the browsed web document is related by an analysis of search key words in a search query submitted prior to the loading of the browsed web document, for example see the search key words in FIG. 6B.

As shown at 107, the user uploaded media content files which are selected and forwarded to be presented with the web document are continuously or iteratively updated, in real time, for example when new media content files tagged with event indicating tags which match the properties of the event related to in the designated web document are discovered. Additionally or alternatively, words and phrases in the web document itself, which are indicative of a multi participant event, are extracted and analyzed. For example, the web document shown at FIG. 6C is analyzed to detect the words marked by rectangular shapes in FIG. 6D. After the web document is associated with an event, for example Rihanna concert in Tel Aviv, Israel, a group of user uploaded media files are sent to the client module 204 for presentation on the display 244 of the client terminal 202, together with the web document. The group is optionally selected as described above. 603 of FIG. 6E depicts an exemplary presentation of the members of the group, for example images and video clips, ordered as described above. As shown at 604, the presentation may be updated over time when new user uploaded media content files are uploaded and tagged with tags which are indicative of the event related to in the designated web document.

Optionally, each user uploaded media content file is presented with an icon indicative of the source thereof, for example Mobli™ database, Twitter™ database, Instagram™ database, or Facebook™ database, see for example 605 in FIG. 6G or 6H. Optionally, each user uploaded media content file is linked to a source webpage, allowing the user to browse to the source webpage, for example for viewing more images or video clips from the same uploader and/or for viewing the image in higher resolution.

Optionally, selecting the user uploaded media content file by a click or touch will induce enlargement thereof and/or instructing the browser to browse to a source webpage. Optionally, the browsing user presented with the uploaded media content file may add a feedback to any of the uploaded media content files which are presented thereto, for example set a like or add a comment. The like and/or the comment are associated with the uploading user, providing a personal feedback thereto.

The methods as described above are used in the fabrication of integrated circuit chips.

The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.

The descriptions of the various embodiments of the present invention have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.

It is expected that during the life of a patent maturing from this application many relevant methods and systems will be developed and the scope of the term a module, a processor, and a user uploaded media file is intended to include all such new technologies a priori.

As used herein the term “about” refers to ±10%.

The terms “comprises”, “comprising”, “includes”, “including”, “having” and their conjugates mean “including but not limited to”. This term encompasses the terms “consisting of” and “consisting essentially of”.

The phrase “consisting essentially of” means that the composition or method may include additional ingredients and/or steps, but only if the additional ingredients and/or steps do not materially alter the basic and novel characteristics of the claimed composition or method.

As used herein, the singular form “a”, “an” and “the” include plural references unless the context clearly dictates otherwise. For example, the term “a compound” or “at least one compound” may include a plurality of compounds, including mixtures thereof.

The word “exemplary” is used herein to mean “serving as an example, instance or illustration”. Any embodiment described as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments and/or to exclude the incorporation of features from other embodiments.

The word “optionally” is used herein to mean “is provided in some embodiments and not provided in other embodiments”. Any particular embodiment of the invention may include a plurality of “optional” features unless such features conflict.

Throughout this application, various embodiments of this invention may be presented in a range format. It should be understood that the description in range format is merely for convenience and brevity and should not be construed as an inflexible limitation on the scope of the invention. Accordingly, the description of a range should be considered to have specifically disclosed all the possible subranges as well as individual numerical values within that range. For example, description of a range such as from 1 to 6 should be considered to have specifically disclosed to subranges such as from 1 to 3, from 1 to 4, from 1 to 5, from 2 to 4, from 2 to 6, from 3 to 6 etc., as well as individual numbers within that range, for example, 1, 2, 3, 4, 5, and 6. This applies regardless of the breadth of the range.

Whenever a numerical range is indicated herein, it is meant to include any cited numeral (fractional or integral) within the indicated range. The phrases “ranging/ranges between” a first indicate number and a second indicate number and “ranging/ranges from” a first indicate number “to” a second indicate number are used herein interchangeably and are meant to include the first and second indicated numbers and all the fractional and integral numerals therebetween.

It is appreciated that certain features of the invention, which are, for clarity, described in the context of separate embodiments, may also be provided in combination in a single embodiment. Conversely, various features of the invention, which are, for brevity, described in the context of a single embodiment, may also be provided separately or in any suitable subcombination or as suitable in any other described embodiment of the invention. Certain features described in the context of various embodiments are not to be considered essential features of those embodiments, unless the embodiment is inoperative without those elements.

Although the invention has been described in conjunction with specific embodiments thereof, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art. Accordingly, it is intended to embrace all such alternatives, modifications and variations that fall within the spirit and broad scope of the appended claims.

All publications, patents and patent applications mentioned in this specification are herein incorporated in their entirety by reference into the specification, to the same extent as if each individual publication, patent or patent application was specifically and individually indicated to be incorporated herein by reference. In addition, citation or identification of any reference in this application shall not be construed as an admission that such reference is available as prior art to the present invention. To the extent that section headings are used, they should not be construed as necessarily limiting. 

What is claimed is:
 1. A method, comprising: receiving, at an enhancement network node from a browser extension of a browser running on a client terminal, a request for content enhancement of a web document being currently displayed at the client terminal via the browser, the request comprising a universal resource locator that identifies the web document on a third-party content network node; in response to the request: accessing the web document, from the third-party content network node, using the universal resource locator; analyzing a content of the accessed web document to extract a set of features from the web document; using a machine learning process to classify the set of features to generate a set of classified features; selecting a set of candidate events by matching the set of classified features with one or more features of events described in an event dataset; generating a ranked set of candidate events by ranking each candidate event, in the set of candidate events, based on relevancy of a set of event features of the candidate event to the web document; and identifying an individual event from the ranked set of candidate events; identifying a group of user uploaded media content files, in a plurality of user uploaded media content files, by matching at least one feature of the individual event with at least one event indicating tag associated with an uploaded media content file in the plurality of user uploaded media content files; and forwarding, from the enhancement network node to the browser extension of the browser running on the client terminal, at least one media content file of the group of user uploaded media content files, the browser extension being configured to cause a simultaneous presentation of the at least one media content file on the browser with the web document, the simultaneous presentation of the at least one media content file being separate from presentation of the web document by the browser.
 2. The method of claim 1, wherein the at least one event indicating tag comprises a tag representing at least one of a capturing location or a capturing time, and wherein the at least one feature of the individual event comprises at least one of an event time value or an area defining value.
 3. The method of claim 1, wherein the request is issued by the browser extension in response to detecting access of the web document on the client terminal.
 4. The method of claim 1, wherein the plurality of user uploaded media content files comprises a plurality of video files and a plurality of image files both captured by a plurality of different users and uploaded from a plurality of different client terminals.
 5. The method of claim 1, wherein the event dataset is created by an analysis of content from a plurality of web documents.
 6. The method of claim 1, wherein the event dataset is created based on an analysis of information about location and time of at least one of the plurality of user uploaded media content files.
 7. The method of claim 1, wherein the individual event is defined by a first value setting plurality of different locations and a second value defining a common timing.
 8. The method of claim 1, wherein the event dataset is created based on an analysis of a plurality of search queries submitted by a plurality of users.
 9. The method of claim 1, wherein the web document is a webpage.
 10. The method of claim 1, wherein the analyzing of the content of the web document comprises a natural language processing.
 11. The method of claim 1, wherein the analyzing of the content of the web document is induced by the web document being loaded by the browser.
 12. The method of claim 1, further comprising iteratively updating the event dataset with up-to-date multi participant events.
 13. A non-transitory computer readable medium comprising computer executable instructions adapted to perform operations comprising: receiving, at an enhancement network node from a browser extension of a browser running on a client terminal, a request for content enhancement of a web document being currently displayed at the client terminal via the browser, the request comprising a universal resource locator that identifies the web document on a third-party content network node; in response to the request: accessing the web document using the universal resource locator; analyzing a content of the accessed web document to extract a set of features from the web document, the analyzing the content in the web document comprising a natural language processing; using a machine learning process to classify the set of features to generate a set of classified features; selecting a set of candidate events by matching the set of classified features with one or more features of events described in an event dataset, the event dataset is created based on an analysis of a plurality of search queries submitted by a plurality of users; generating a ranked set of candidate events by ranking each candidate event, in the set of candidate events, based on relevancy of a set of event features of the candidate event to the web document; and identifying an individual event from the ranked set of candidate events; identifying a group of user uploaded media content files, in a plurality of user uploaded media content files, by matching at least one feature of the individual event with at least one event indicating tag associated with an uploaded media content file in the plurality of user uploaded media content files; and forwarding, from the enhancement network node to the browser extension of the browser running on the client terminal, at least one media content file of the group of user uploaded media content files, the browser extension being configured to cause a simultaneous presentation of the at least one media content file on the browser with the web document, the simultaneous presentation of the at least one media content file being separate from presentation of the web document by the browser.
 14. The non-transitory computer readable medium of claim 13, wherein the at least one event indicating tag comprises a tag representing at least one of a capturing location or a capturing time, and wherein the at least one feature of the individual event comprises at least one of an event time value or an area defining value.
 15. An enhancement network node, comprising: a database that hosts an event dataset documenting a plurality of multi participant events, each of the plurality of multi participant events being held in a geographical venue that hosts a plurality of participants; at least one processor; a web document analyzer that uses the at least one processor to: access the web document using a universal resource locator, the universal resource locator being included in a request from a browser extension of a browser running on a client terminal, the request being generated in response to the browser loading the web document; analyze a content of the accessed web document to extract a set of features from the web document; and using a machine learning process to classify the set of features to generate a set of classified features; and a selection module that uses the at least one processor to: select a set of candidate events by matching the set of classified features with one or more features of events described in an event dataset; generate a ranked set of candidate events by ranking each candidate event, in the set of candidate events, based on relevancy of a set of event features of the candidate event to the web document; identify an individual event from the ranked set of candidate events; and identify a group of user uploaded media content files, in a plurality of user uploaded media content files, by matching at least one feature of the individual event with at least one event indicating tag associated with an uploaded media content file in the plurality of user uploaded media content files; and a client interface module that uses the at least one processor to: receive the request from the browser extension; and forward to the browser extension of the browser running on the client terminal, in response to the request, at least one media content file of the group of user uploaded media content files, the browser extension being configured to cause a simultaneous presentation of the at least one media content file on the browser with the web document, the simultaneous presentation of the at least one media content file being separate from presentation of the web document by the browser.
 16. The enhancement network node of claim 15, wherein the at least one event indicating tag comprises a tag representing at least one of a capturing location or a capturing time, and wherein the at least one feature of the individual event comprises at least one of an event time value or an area defining value.
 17. The enhancement network node of claim 15, wherein analyzing the content in the web document is induced by the web document being loaded by the browser.
 18. The enhancement network node of claim 15, wherein the event dataset is created based on an analysis of a plurality of search queries submitted by a plurality of users.
 19. The enhancement network node of claim 15, wherein the event dataset is created based on an analysis of information about location and time of at least one of the plurality of user uploaded media content files.
 20. The enhancement network node of claim 15, wherein the individual event is defined by a first value setting plurality of different locations and a second value defining a common timing. 